// // src/services/assessmentService.js
// // 统一管理测评管理相关的所有后端接口，便于后端和前端维护
// // 所有方法均为异步，真实项目中请替换为实际API调用
import api from './api';
import { FILE_BASE_URL } from './config';

// //这是考试管理的service

function patchFileUrl(filePath) {
  if (!filePath) return '';
  // 如果已经是远程地址则直接返回，否则替换为远程服务器
  if (filePath.startsWith(FILE_BASE_URL)) return filePath;
  // 只保留 /111/xxx.doc 这种相对路径
  const idx = filePath.indexOf('/111/');
  if (idx !== -1) {
    return FILE_BASE_URL + filePath.slice(idx);
  }
  // 兜底：如果是 http://127.0.0.1:9000/xxx 直接替换主机
  return filePath.replace('http://127.0.0.1:9000', FILE_BASE_URL);
}


// export default assessmentService;
// src/services/assessmentService.js


const assessmentService = {
  /**
   * 上传试卷和答案文件，获取AI分析报告
   * @param {File} examFile 试卷文件
   * @param {File} answersFile 答案文件
   * @returns {Promise<object>} 分析报告对象
   */
  async gradeAndAnalyze(examFile, answersFile) {
    const formData = new FormData();
    formData.append('examFile', examFile);
    formData.append('answersFile', answersFile);

    try {
      const response = await api.post('/api/assessment/auto-grade', formData, {
        headers: {
          'Content-Type': 'multipart/form-data',
        },
      });
      return response.data;
    } catch (error) {
      console.error('[AssessmentService] 分析失败:', error);
      const errorMessage = error.response?.data || error.message || '请求服务器失败';
      // 如果后端返回的是字符串，而不是对象
      throw new Error(typeof errorMessage === 'string' ? errorMessage : '分析时发生未知错误');
    }
  },

  async createExam(formData) {
    console.log("createExam", formData);
    // formData: FormData对象，包含name, courseId, totalScore, timeLimit, createTime, file(可选)
    const res = await api.post('/api/teacher/test/publish', formData, {
      headers: { 'Content-Type': 'multipart/form-data' },
    });
    return res.data;
  },
  // 查询全部考试，可选参数params: { name }
  async getExamList(params = {}) {
    console.log("getExamList", params);
    // 支持 name 查询参数
    const res = await api.get('/api/teacher/test/list', { params });
    if (res.data && Array.isArray(res.data.data)) {
      res.data.data = res.data.data.map(item => ({
        ...item,
        filePath: patchFileUrl(item.filePath)
      }));
    }
    return res.data;
  },
  // 查询单个考试
  async getExam(id) {
    console.log("getExam", id);
    const res = await api.get(`/api/teacher/test/${id}`);
    if (res.data && res.data.data) {
      res.data.data.filePath = patchFileUrl(res.data.data.filePath);
    }
    return res.data;
  },
  // 修改考试
  async updateExam(formData) {
    // formData: FormData对象，包含id, name, courseId, createTime, totalScore, timeLimit, file(可选), filePath(可选)
    const res = await api.put('/api/teacher/test/update', formData, {
      headers: { 'Content-Type': 'multipart/form-data' },
    });
    return res.data;
  },
  // 删除考试
  async deleteExam(id) {
    console.log("deleteExam", id);
    const res = await api.delete(`/api/teacher/test/delete/${id}`);
    return res.data;
  },


};

export default assessmentService;